mod lex;
use lex::*;
use std::{env, fs};

fn main() {
    let args: Vec<String> = env::args().collect();
    if args.len() < 2 {
        eprintln!("Usage: {} <filename>", args[0]);
        std::process::exit(1);
    }

    let filename = &args[1];

    let input = fs::read_to_string(filename).expect("Failed to read file");

    let (toks, errs) = tokenize(&input);

    if errs.len() == 0 {
        print_tokens(&toks);
    } else {
        for err in errs {
            eprintln!("{}", err);
        }
    }
}
